class Solution
{
public:
    int distinctIntegers(int n)
    {
        // 脑筋急转弯，n在桌面上则n-1也会在桌面上，1除外，最终2到n都在桌面上
        return n == 1 ? 1 : n - 1;
    }

    // 模拟
    int distinctIntegers(int n)
    {
        unordered_set<int> nums;
        nums.insert(n);

        while (true)
        {
            int lastSize = nums.size();
            for (auto num : nums)
            {
                for (int i = 2; i < num; ++i)
                {
                    if (num % i == 1)
                    {
                        nums.insert(i);
                    }
                }
            }
            if (nums.size() == lastSize)
            {
                break;
            }
        }
        return nums.size();
    }
};